2013年02月25日
川俣晶の縁側ソフトウェア技術雑記 total 6795 count

C#において、""とstring.Emptyのニュアンスの違いは何か

Written By: 川俣 晶連絡先

「意外と分からない""とstring.Emptyの違い」

「どっちも内容は同じだよね」

「長さだけから行けば""の圧勝なのだが……」

「だが?」

「実は微妙な使い分けができることに気付いた」

「というと?」

「""っていうのは、中間に何かを書き足せる書式」

「"Hello"でも"World"でも書けるね」

「でもね。string.Emptyは書き足せないんだ」

「構文エラーになるだけだね」

「だからさ。たまたま今は中身が無いけれど、本来なら書くことは可能だというニュアンスが""。それに対して、絶対長さ0の文字列。絶対文字を足しちゃダメ。足した瞬間にコードが破綻する……というときは、string.Emptyでいいんじゃないかな」

「微妙な使い分けだね」

「でも、必要な使い分けだ。無効を示す長さ零の文字列と、たまたま長さが零になった有効な文字列は区別できた方が良い」

「実行中のコードからは区別できないけどね」